package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

//自定义拦截器
func myHandle() gin.HandlerFunc {
	return func(context *gin.Context) {

		//...前处理
		//放行
		context.Next()
		//拦截
		context.Abort()
		//...后处理，在get/post返回结果后执行
	}
}
func mygin() {
	ginServer := gin.Default()

	//全局使用拦截器
	ginServer.Use(myHandle())

	//设置静态资源
	ginServer.Static("访问前缀，如：/img", "本地路径，如：./image文件夹")

	//get方法
	//路径参数的get请求:ginServer.GET("/test/:name/:id")
	ginServer.GET("/test", func(context *gin.Context) {

		//参数
		context.Query("")
		//路径参数
		context.Param("")
		//返回json
		context.JSON(http.StatusOK, gin.H{
			"name": "xxx",
		})
	})
	//post方法
	ginServer.POST("", func(context *gin.Context) {
		//表单数据
		context.PostForm("")
		//context.ShouldBindJSON()
		//context.BindJSON()
		//body数据
		context.GetRawData()
	})

	//路由分组
	userGroup := ginServer.Group("/分组前缀，如：/user")
	//相当于访问: /user/login
	userGroup.GET("/login", func(context *gin.Context) {
		//...
	})
	//启动服务，参数为端口
	ginServer.Run("8080")
}
